package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Student;

public class StudentDao {
    //static为共享数据
    private static Student[] stus = new Student[5];
    //创建一个学生对象数组

    public static boolean addstudent(Student stu) {
        //添加学生到数组
        //定义变量index为-1，假设数组已经全部存满，没用null元素
        int index = -1;
        //便利数组去除每一个元素，判断是否是null
        for (int i = 0; i < stus.length; i++) {
            Student student = stus[i];
            if (student == null) {
                index = i;
                //如果有null，让index变量记录当前索引位置，并使用break结束循环遍历
                break;
            }
        }
        //返回是否添加成功的boole类型状态
        if (index == -1) {
            //已满返回false
            return false;
        } else {
            //没用装满，正常添加，返回true
            stus[index] = stu;
            return true;
        }
    }

    public Student[] findAllStudent() {
        return stus;
    }

    public void deleteStudentById(String delId) {
        //查到id在容器中所在的索引位置
        int index = getIndex(delId);
        //将该索引位置，使用null元素进行 覆盖
        stus[index] = null;
    }

    public int getIndex(String id) {
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            Student stu = stus[i];
            if (stu != null && stu.getId().equals(id)) {
                index = i;
                break;
            }
        }
        return index;
    }

    public void updateStudent(String updateId, Student newStu) {
        //查找updateid，在容器中的索引位置
        int index = getIndex(updateId);
        //将该索引位置，使用新的学生对象交换
        stus[index] = newStu;
    }
}